#ifndef SAMPLINGTHREAD_H
#define SAMPLINGTHREAD_H

#include <qwt_sampling_thread.h>
#include "isi.h"
#include "signaldata.h"


/**
 * @brief The SamplingThread class      класс для создания точек
 * порядок вызова методов
 * 1)setPath() и setCountParam()
 * 2)init()
 */
class SamplingThread : public QwtSamplingThread
{
    Q_OBJECT
public:
    explicit SamplingThread(QObject *parent = NULL);
    /**
     * @brief init                     создать новый экземпляр класса SignalData, для чтения/записи данных
     */
    void init();
    /**
     * @brief countParam                назначить количество параметров
     * @param countParam                количество параметров
     */
    void setCountParam(const int countParam);
    /**
     * @brief setPath                   назначить путь к базе данных
     * @param path                      путь к базе данных
     */
    void setPath(const QString &path);
    /**
     * @brief setNumConnection          назначить номер подключения к базе данных
     * @param numConnetion              номер подключения
     */
    void setNumConnection(int numConnetion);

    void stop();


protected:
    /**
     * @brief sample                    метод для создания точки, и передачи её в класс SignalData
     * @param elapsed                   значений x - время с момента запуска потока
     */
    virtual void sample(double elapsed);

};

#endif // SAMPLINGTHREAD_H
